package com.kmxd.ams.core.log.annotation;

import com.kmxd.ams.core.common.enums.LogLevelEnum;
import com.kmxd.ams.core.common.enums.LogTypeEnum;
import com.kmxd.ams.core.common.enums.UserPlatformEnum;

import java.lang.annotation.*;

/**
 * 日志注解
 *
 * @author admin
 */
@Target({ElementType.PARAMETER, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AutoLog {

  String module() default "";

  String title() default "";

  /** 日志等级 */
  LogLevelEnum level() default LogLevelEnum.LOW;

  /** 日志模块 */
  LogTypeEnum type() default LogTypeEnum.SYSTEM;

  /** 用户平台 */
  UserPlatformEnum userPlatform() default UserPlatformEnum.WEB;

  /** 是否保存请求的参数 */
  boolean isSaveRequestData() default true;

  /** 是否保存响应的参数 */
  boolean isSaveResponseData() default true;

  /** 是否保留原数据, 原数据使用ThreadLocal进行传递，参数名为“oldRecord” */
  boolean isSaveOldRecord() default false;

  /**
   * 操作类型
   *
   * @return
   */
  String opType() default "";
}
